# http 超文本传输协议（传播网页，视频，图片）  
# http 请求消息： 
#   请求行 ：地址，方法（get post put delete），协议  
#   请求头  xx:xx
#   消息体 post,put请求海拔数据放在请求消息体中
# http 响应消息：
#   状态行 ： 状态码 301 302 400 401 403 404 5xx
#   响应头
#   消息体
#接口测试？ 接口测试就是依据接口规范，写出测试用例，然后使用测试工具，直接通过消息接口对被测系统进行消息收发，验证被测系统行为是否正确
# api : application programing interface
#     html,css,图片时静态资源，获取这些文件只需要服务端读取文件返回，不需要特殊的数据处理。
#      但是api接口请求，都需要服务端程序做一系列的处理，比如对请求权限的检查，从数据库读取数据，进行信息过滤，格式转换，最后再返回。
#一定要接口测试吗？
#   内部接口：一般由开发人员测试
#   外部接口：一定要测试
#bysms的接口文档： http://vip3.byhy.net/py/django/doc_api_v1_2/
# 评审接口文档：看看是否有遗漏，逻辑问题
# 抓包：通过工具来查看具体的发送的请求消息和接收的响应

# http://httpbin.org/get  这个网址返回请求的消息

# 请求构建的一些参数
# get :params headers proxies
# post : paramas headers data(还可以是json） proxies
# 消息体中的数据格式：（消息体中应该是字节）  统一：就是把数据放到字符串，然后encode
#   xml：xml放入到字符串，需要encode(utf8),data默认编码是latin-1的方式
#   urlendcoded：创建一个字典对象，直接放入到data
#   json：创建一个字典对象，data=json.dumps(xxx) 或者 json = xxx 有两种写法

# 响应的属性




import requests
proxies = {
    'http': 'http://127.0.0.1:8888',
    'https': 'http://127.0.0.1:8888'
}
# response = requests.get('http://mirrors.sohu.com/',proxies=proxies)
# response = requests.get('http://mirrors.sohu.com/')
# print(response.text)

urlpara = {
    'wd':'iphone&ipad',
    'rsv_spt':'1'
}
headers = {
    'user-agent':'my-app',
    'auth-type':'jwt-token'
}
response = requests.get('http://httpbin.org/get',params=urlpara,headers=headers)
# print(response.text)

response = requests.post('http://httpbin.org/post',params=urlpara,headers=headers)
# print(response.text)

payload = '''
report
overall:良好
progress: 30%
problems:暂无

'''
# response = requests.post('http://httpbin.org/post',params=urlpara,headers=headers,data=payload.encode('utf8'))
# print(response.text)

payload = {
    'key1':'value1',
    'key2':'value2'
}
# response = requests.post('http://httpbin.org/post',data=payload)
# print(response.text)

response = requests.post('http://httpbin.org/post',json=payload)
print(response.text)

